home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Communication / Conference / Source / Conference.nib (.txt) < prev    next >
NeXT TypedStream Data  |  1993-01-19  |  21KB  |  303 lines

  1. typedstream
  2. StreamTable
  3.     HashTable
  4. Object
  5. [20c]
  6. typedstream
  7. [1449c]
  8. typedstream
  9.     HashTable
  10. Object
  11. Controller
  12. HeaderClass
  13. %%%%i@@
  14. /usr/include/machine/vm_types.h
  15. genericobject_nib
  16. soundFileTextField
  17. machineSwitch
  18. logText
  19. memberBrowser
  20. useNetworkSwitch
  21. alertSound
  22. alertWindow
  23. addMachineField
  24. visualAlertSwitch
  25. memberStore
  26. useConferenceSwitch
  27. realSwitch
  28. addMachinePanel
  29. machineBrowser
  30.     inputText
  31. listen
  32. noisyAlertSwitch
  33. activateOnAlertSwitch
  34. speak
  35. coverButton
  36. loginSwitch
  37. windowDidDeminiaturize:
  38. connectMember:
  39. addMachine:
  40. setDefaults:
  41. changePref:
  42. doNetworkTimedEntry:
  43. doConferenceFile:
  44. appDidInit:
  45. fetchSound:
  46. doNetwork:
  47. connectMachine:
  48. disconnectMember:
  49. textDidEnd:
  50. doAlarmTimedEntry:
  51. getDefaults:
  52. removeMachine:
  53. selectAllMembers:
  54. windowWillMiniaturize:
  55. disconnectMachine:
  56. yeahRight:
  57. addMachineQuit:
  58. quit:
  59. input:
  60. addMachineOk:
  61. FirstResponder
  62. firstnib
  63. checkSpelling:
  64. alignSelCenter:
  65.     unscript:
  66. pasteFont:
  67. runPageLayout:
  68. superscript:
  69. copyRuler:
  70.     copyFont:
  71. selectAll:
  72. pasteRuler:
  73. toggleRuler:
  74. showGuessPanel:
  75. alignSelLeft:
  76. paste:
  77. performClose:
  78. arrangeInFront:
  79. subscript:
  80. copy:
  81. alignSelRight:
  82. delete:
  83. orderFrontColorPanel:
  84. underline:
  85. performMiniaturize:
  86. [19896c]
  87. typedstream
  88.     HashTable
  89. Object
  90. NXImage
  91. Conference
  92. NXBitmapImageRep
  93. NXImageRep
  94. iissss00
  95. [576c]
  96. UUUUUP
  97. UUUUUP
  98. Conference_H
  99. ?UUUUU_
  100. =UUUUU_
  101. NibData
  102. @@@@s
  103. Storage
  104. {*@@}
  105.     [65{*@@}]
  106. File's Owner
  107. CustomObject
  108. Application
  109. MainMenu
  110. MenuTemplate
  111. *@*@ccc
  112. Matrix
  113. Control
  114.     Responder
  115. @:@iiii
  116. MenuCell
  117. ButtonCell
  118. ActionCell
  119.     Helvetica
  120. Info Panel...
  121. Help...
  122. Preferences...
  123. ff@@#::s
  124. submenuAction:
  125. Bitmap
  126.     menuArrow
  127. Participants...
  128. Conference Log...
  129. Paste
  130. Select All
  131. MenuItem
  132. Participants
  133. WindowTemplate
  134. iiii***@s@
  135. Window
  136.     NXBrowser
  137. @@::#@ssssi**
  138. NXBrowserCell
  139. BrowserItem
  140. Connect
  141. Disconnect
  142. Button
  143. ControllerInstance
  144. Controller
  145.     LogWindow
  146. Conference Log
  147. ScrollView
  148. ClipView
  149. ciifffcfffs
  150. [157c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  151. \margl40
  152. \margr40
  153. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b0\i0\ul0\fs24 
  154. NXCursor
  155. NXibeam
  156. Scroller
  157. _doScroller:
  158. @@@ffs"
  159.     TextField
  160. TextFieldCell
  161. [108c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  162. \margl40
  163. \margr40
  164. \f0\b0\i0\ul0\ql\fs24\fi0\li0\gray0\up0\dn0 
  165. Input:)
  166. ScrollingText
  167. Field2$
  168. ScrollingText1+
  169. Field1
  170. Panel
  171. Times-Bold$
  172. Version 1.2
  173. by ...
  174. 1Copyright 1991,ThugWare Inc.  All Rights Wronged.G
  175. Thomas K. Burkholder
  176. Button1N9
  177. Field1?95I9
  178. VersionNumberD97Q9
  179. HelpWindow
  180. [9725c]{\rtf0\ansi{\fonttbl\f1\fnil Times-Roman;\f0\fswiss Helvetica;}
  181. \margl40
  182. \margr40
  183. {\colortbl\red0\green0\blue0;}
  184. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f1\b\i0\ul0\fs48 Introduction, or "Why Conference 1.2"\
  185. \f0\b0\fs24 \
  186. This is Conference 1.2.  The only modification to Conference 1.1 was a few bug fixes and a small change to the info panel.  (After I released Conference 1.1, I realized that the info panel still read version 1.0.  Now it reads 1.2.  Nobody's perfect.)  Thanks to Scott Greenman for reporting the bug in the Preferences panel - the "Get Sound" button now updates the Defaults database as it should.  Thanks also to all the other folks who gave me feedback.  I encourage anyone who uses this program to please report any bugs or percieved failings in it to me, so that the next version, if and when, will be better.\
  187. A new discovery I've made since posting version 1.1 is that Conference works across internet links.  Much to my surprise.  The Speaker/Listener methods seem to be written with this in mind.  The utility of Conference could be much greater than I had thought.  So if you regularly correspond with someone on a next via e-mail, give Conference a shot instead, to see if you can get an interactive session going from two or more widely-separated sites.  I would greatly appreciate hearing about any successes or failures doing this.\
  188. The only difference between version 1.1 and 1.0 was that 1.1 now defaults to the "Use Network" switch in the NO position, as several people claimed that the application looked really neat, but when they tried to run it it just sat there and responded to half of their events.  Also, Conference 1.1 is released with the Conference executable stripped, so that the size is about one fifth what it was before.\
  189. \f1\b\fs48 Conference 1.2:
  190. \f0\b0\fs24 \
  191. Welcome to Conference, a nifty new app I wrote for no real reason.  Conference does essentially what the unix "talk" utility does, but with a real user interface.  Also, Conference is much more functional than Talk.  As the name implies, Conference is designed to let a number of people on a network hold a conference... that is, direct what they have to say to more than one person at a time.\
  192. \f1\b\i\fs36 Licence (Sort Of):
  193. \f0\b0\i0\fs24 \
  194. I hereby release this in the public domain.  Do whatever you want with it, but please don't try to sell it.  It would be kind of you to attribute to me any of the code you use directly, but don't feel obligated unless you use the whole thing.  
  195. \b Please
  196. \b0  send me bug reports, I have no idea how solid this thing really is, and I will probably fix bugs and re-post a new version of the code.  Please note that "It doesn't run under X" is not a bug.  To quote someone famous "X is brain-dead."\
  197. \f1\b\i\fs36 Operation:
  198. \f0\b0\i0\fs24 \
  199. The operation of Conference is simple.  Drag the program to your dock, double click on it.  In the window labeled "Participants", you will find a list of people who are currently running Conference somewhere on the network.  (This is no longer true in Conference 1.1.  To understand how to add and remove recipients to your list, see the "Preferences" section of this document.)  To send a message, simply select the people you want to receive your message in the browser, using the ordinary NextStep click-and-drag paradigm, and type your message in the TextField labeled "Input", located at the bottom of the "Conference Log" window.  As soon as you enter a carriage return, your message will disappear from the "Input" field, and appear in the "Log" fields of all of the recipients that you selected.  In addition, your message is always echoed to your own "Log" field, preceeded by your name, in bold.  Other's messages will appear beside their names, which are echoed to the "Log" field in italics.  It's really that simple.  There is nothing more to Conference but a whole bunch of Preferences that make the program easier to live with.\
  200. The Connect and Disconnect buttons located at the top of the "Participants" window allow you to connect or disconnect from a participant.  Their function is self-explanatory, so I won't explain it, other than to note that the Disconnect button only disconnects you from the 
  201. \ul last
  202. \ul0  selected participant.  The Select All button, obviously, selects all the participants in the browser.\
  203. \f1\b\i\fs36 Preferences:\
  204. \f0\b0\i0\fs24 \
  205. You can obtain the preferences panel by typing command-p, or selecting Info/Preferences from the main menu.  There are three important sections to the Preferences panel.  They are easily separated by their titles.  In the panel there is a box labeled "Machines", another labeled "Identify By", and another labeled "Message Alerts".  It should be noted that all of the preferences that you set in the preferences panel are permanent, and will remain in the setting that you choose even after you quit the program.\
  206. The first, and largest box, entitled "Machines"  controls how the program will initially connect to other machines.  The two most important options here are located at the top of the box, entitled "Use ".conference" file" and "Use Network Info".  The first switch, when turned on, will cause the program to read a file from the current user's home directory, called ".ConferenceMachines".  When told to read this file, the program will take each line and try to connect to a Conference program on the machine described by the line.  You should not edit this file directly, at least not when the program is running.  To add and remove machines from this file, use the Add and Remove buttons located to the right of the browser.  The browser itself should at all times show what is contained in the ".ConferenceMachines" file.  The other switch, located at the top right of the box, when selected will cause the program to poll the entire network for machines running Conference.  Care should be used when selecting this switch, as large networks can take some time to scan completely, and while the program does not hang for the entire time the scanning takes place, it does hang for seconds at a time.  This switch is best set only when connected to networks of about 10-20 machines or less.  The connect and Disconnect buttons in the "Machines" box will allow you to connect to or disconnect from the machine currently selected in the browser to the left.  Conference 1.1 now assumes that you are on a large network, and this switch is in the "OFF" position by default.  If you are on a small network (10 machines or less) you may want to turn this switch on.\
  207. The second box, entitled "Identify By:", controls what the name of a message sender or recipient looks like in the "Participants" and "Log"  windows.  The three switches toggle whether the user's login name, real name, and machine to which they are logged in will be shown.  it is usually most convenient to leave either or both of the login and real names selected.\
  208. The third box, entitled "Message Alerts" , controls how the program will prompt you when you recieve a message after hiding Conference or iconifying the "Conference Log" window.  The first switch, when set, unhides the application when a message is recieved.  The second switch causes the Conference program icon to flash several (5) times.  The third swich causes an audible alert, either the system beep or a sound which you may supply by entering the pathname into the field at the bottom of the box or by pressing the "Get Sound" button and selecting a sound from the Open panel.\
  209. \f1\b\i\fs36 Defaults:
  210. \f0\b0\i0\fs24 \
  211. As mentioned before, all of the items in the Preferences panel are set permanently as soon as you change them.  For dread/dwrite/dremove enthusiasts, the following are the names and values of the settable defaults:\
  212. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Conference ActivateOnAlert YES/NO\
  213. Conference ShowLogin YES/NO\
  214. Conference ShowMachine YES/NO\
  215. Conference ShowReal YES/NO\
  216. Conference UseConference YES/NO\
  217. Conference UseNetwork YES/NO\
  218. Conference UseNoiseAlert YES/NO\
  219. Conference UseVisualAlert YES/NO\
  220. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600 Conference SoundFile <STRING>\
  221. \f1\b\i\fs36 The Source Code:
  222. \f0\b0\i0\fs24 \
  223. I've included the source with this release, because I think it might be useful to anyone writing simple Speaker/Listener code.  Methods used in Conference include:\
  224. Speaker/Listener\
  225. Timed Entry\
  226. Reading/Writing to the Defaults database\
  227. Using the UNIX hostent routines\
  228. Multiple NXBrowsers with the same delegate\
  229. Modifying the Application icon\
  230. Peer-to-peer model communications code (as apposed to server/client)\
  231. Using the Storage object\
  232. Using the UNIX pwent routines\
  233. Text, Application, and NXBrowser delegation\
  234. How to make the *!@#$* Makefile do a msgwrap when it ought to.\
  235. Note that in almost all of these areas, the code is fairly simple.  In almost none of the above areas does the program use more than a few of the routines provided.  This application could be useful to anyone curious about how to do basic things in the above areas.  If you wan to do anything really complex or obscure, chances are you won't find it in this code.\
  236. For any further information, e-mail me, Thomas Burkholder, at\
  237. burkhold@scheme.cs.ubc.ca (NextMail OK)\
  238. UBC undergrad (CPSC 4),\
  239. Next Developer, and\
  240. Next Campus Consultant.\
  241. When I speak, I speak in gutteral monosylables.  There is no possible way that anything that I say can be attributed to anyone but me.  In no way, shape or form do I speak for anyone but myself.  Cross my heart, hope to die, plunge a needle in my eye, etc.
  242. Preferences
  243. Login Name
  244. NXswitch
  245.     NXswitchH
  246.     Real Name
  247. Machine Name
  248. Identify By:
  249. Use ".conference" file
  250. Use Network Info
  251. Remove
  252. Machines
  253. Audible Alert
  254. Activate On Alert
  255. Visual Alert
  256.     Get Sound
  257. Message Alerts
  258. AddMachine
  259. Add Machine
  260. Machine:
  261. Cancel
  262. NXreturnSign
  263. CoverButtonPanel
  264. {i*@@@}
  265. [51{i*@@@}]
  266. hide:
  267. copy:
  268. paste:
  269. selectAll:
  270. makeKeyAndOrderFront:
  271. delegate
  272. logText
  273. memberBrowser
  274. quit:
  275. orderFront:
  276.     inputText
  277. changePref:
  278. useConferenceSwitch
  279. machineBrowser
  280. useNetworkSwitch
  281. addMachinePanel
  282. addMachineField
  283. performClick:
  284. addMachineOk:
  285. addMachineQuit:
  286. loginSwitch
  287. realSwitch
  288. machineSwitch
  289. activateOnAlertSwitch
  290. visualAlertSwitch
  291. noisyAlertSwitch
  292. soundFileTextField
  293. fetchSound:
  294. coverButton
  295. addMachine:
  296. removeMachine:
  297. connectMachine:
  298. disconnectMachine:
  299. connectMember:
  300. disconnectMember:
  301. selectAllMembers:
  302. yeahRight:Z
  303.